package com.yss.reportworld.service;

import com.yss.reportworld.domain.Table;
import com.baomidou.mybatisplus.extension.service.IService;
import org.springframework.web.multipart.MultipartFile;

import javax.servlet.http.HttpServletResponse;
import java.util.List;

/**
 * 表信息Service接口
 *
 * @author yss
 * @date 2023-03-19
 */
public interface ITableService extends IService<Table> {

    /**
     * 查询表信息列表
     *
     * @param table 表信息
     * @return 表信息集合
     */
    public List<Table> selectTableList(Table table, boolean dataMark);

    /**
     * 获取 表详细信息  ，包含字段所属客户，模块。客户
     *
     * @param table
     * @return
     */
    public Table selectTableById(Table table);

    /**
     * 新增表信息
     *
     * @param table
     * @return
     */
    public void addTable(Table table);

    /**
     * 修改表信息
     *
     * @param table
     * @return
     */
    public void editTable(Table table);

    /**
     * 删除表信息
     *
     * @param table
     */
    public boolean deleteTable(Table table);


    /**
     * 批量修改表信息
     *
     * @param table
     * @throws Exception
     */
    public void batchUpdateTableInfo(Table table);

    /**
     * 导出建表语句
     */
    public String tableCreateInfo(String queryJson);

    /**
     * 获取一张表信息到库里
     *
     * @throws Exception
     */
    public void readTableInfo(Table table);


    /**
     * 读取设计文档  同步字典和业务主键
     */
    public String readDemandDesign(MultipartFile multipartfile, boolean updateSupport, String hisVersion);


    /**
     * 导出Execl
     *
     * @throws Exception
     */
    public void exportExeclTableInfo(HttpServletResponse response, List<Table> list);

}
